import socket
import Decrypt

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 参数1：服务器之间网络通信；参数2：流式socket , for TCP

s.bind(('192.168.0.105', 8000))  # 绑定地址

print("服务器已开启！")
s.listen()  # 监听
conn, address = s.accept()  # 阻塞 接受TCP连接并返回（conn,address）,其中conn是新的套接字对象，可以用来接收和发送数据。address是连接客户端的地址。
data = conn.recv(1024)  # 接收 注意这里的接受是编码后的数据，需要解码才能变成原来的数据

print("服务器接受的密文为" + data.decode())  # 不要忘记解码，否则会报错

file1 = open("ciphertext.txt", 'r+')  # 将接受的密文写入ciphertext.txt中去，先打开
file1.write("密文：" + data.decode())  # 在文档中写入：密文：xxxx \n 明文：xxxx
test = Decrypt.Decrypt()  # 实例化
test.input_key()  # 输入解密密钥
print(test.decrypt(data.decode()))  # 开始解密
file1.write('\n' + "明文：")  # 写入
file1.write(str(test.decrypt(data.decode()), encoding="gbk"))
conn.sendall(("服务器已经接收到了数据内容：" + str(data.decode())).encode())

s.close()  # 关闭服务器
